package cn.qingyun.gis.modules.scenes.request;

import cn.qingyun.gis.modules.scenes.entity.*;
import cn.qingyun.gis.modules.scenes.response.BusContentDto;
import cn.qingyun.gis.modules.scenes.response.KwRelativesDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
public class PoiKwRequest {

    @NotEmpty(message = "随访id不能为空")
    @ApiModelProperty(value = "摸排id")
    private String id;

    @ApiModelProperty(value = "记录表主键")
    @NotEmpty(message = "流水号id不能为空！")
    private String chainId;

    @NotNull(message = "poi场景类型")
    @ApiModelProperty(value = "poi场景类型")
    private String type;

    @ApiModelProperty(value = "地市编码")
    @NotEmpty(message = "地市码不能为空！")
    private String regionCityCode;

    @ApiModelProperty(value = "随访—poi地址")
    private String kwPoiAddress;

    @ApiModelProperty(value = "勘误工号")
    private String kwPhone;

    @ApiModelProperty(value = "勘误人真实姓名")
    private String kwName;

    @ApiModelProperty(value = "随访—poi名称")
    private String kwPoiName;

    @ApiModelProperty(value = "随访—场景类型")
    private String kwType;

    @ApiModelProperty(value = "随访—老板姓名")
    private String kwBossName;

    @ApiModelProperty(value = "随访—老板电话以及手机号码")
    private String kwBossTel;

    @ApiModelProperty(value = "随访—老板月均消费")
    private String kwBossConsume;

    @ApiModelProperty(value = "随访—所属运营商")
    private Integer belongOperator;


    @ApiModelProperty(value = "随访—(优惠)到期时间")
    private String expireDate;

    @ApiModelProperty(value = "随访—商机内容(手动录入)")
    private String businessContent;

    @ApiModelProperty(value = "随访—商机内容(录音识别)")
    private List<BusContentDto> businessContentList;


    @ApiModelProperty(value = "随访—亲属信息")
    private List<KwRelativesDto> kwRelativesInfo;

    @ApiModelProperty(value = "行政地市")
    private String kwCity;

    @ApiModelProperty(value = "行政区县")
    private String kwDis;

    @ApiModelProperty(value = "行政乡镇")
    private String kwTown;

    @ApiModelProperty(value = "行政街道")
    private String kwRoad;

    @ApiModelProperty(value = "行政道路门牌号")
    private String kwRoadNo;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "上传base64图片列表")
    private List<String> pictureList;

    @ApiModelProperty(value = "角色类型")
    private String roleName;

    @ApiModelProperty(value = "渠道编码")
    private String channelCode;
    /**
     * 0正常营业 1装修中 2已倒闭
     */
    @ApiModelProperty(value = "经营状态")
    private Integer businessState;

    @ApiModelProperty(value = "门牌号---路")
    private String houseRoad;

    @ApiModelProperty(value = "门牌号---号")
    private String houseNumber;

    @ApiModelProperty(value = "poiId")
    private String poiId;
    /**
     * 0移动 1联通 2电信 3广电 4无
     */
    @ApiModelProperty(value = "店主关联运营商")
    private Integer dzBelongOperator;
    /**
     * 网络是否覆盖 1是 0否
     */
    @ApiModelProperty(value = "网络是否覆盖")
    private Integer isZoneCode;

    /**
     * 网络是否覆盖是否准确 1是 0否
     */
    @ApiModelProperty(value = "网络是否覆盖是否准确")
    private Integer isZoneCodeAccurate;
    /**
     *是否有意向 1是 0否
     */
    @ApiModelProperty(value = "是否有意向")
    private Integer isIntention;

    @ApiModelProperty(value = "意向时间")
    private String intentionDate;

    @ApiModelProperty(value = "设备信息")
    private KdDeviceInfo kdDeviceInfo;

    @ApiModelProperty(value = "平台信息实体")
    private PlatformInfo platformInfo;

    @ApiModelProperty(value = "备注")
    private InterviewRemark interviewRemark;

    @ApiModelProperty(value = "是否是建筑")
    @NotNull(message = "是否是建筑标识不能为空！")
    private Integer isBuild;

    @ApiModelProperty(value = "建筑信息")
    private BuildInfo buildInfo;

    @ApiModelProperty(value = "是否是金牌建筑")
    private Integer isGoldBuild;

    @ApiModelProperty(value = "建筑结构")
    private BuildStructure buildStructure;

    @ApiModelProperty(value = "联系信息")
    private RelatedInfo relatedInfo;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date kwTimeStart;

    @ApiModelProperty(value = "商机（意向业务）")
    private IntentionInfo intentionInfo;

    @ApiModelProperty(value = "存量泛渠道")
    private PanChannelInfo panChannelInfo;

    @ApiModelProperty(value = "用户id")
    private String userId;
}
